#ifndef SHAPE_H
#define SHAPE_H

#define DEBUG 0

class Shape
{
private:
	double	*x,  //array of x values
			*y,  //array of y values
			*m,  //array of slopes
			*mN, //array of perpendicular slopes
			*p;  //array of point projections
	int vert; //number of vertices

public:
	Shape(int); //Default Constructor
	Shape(double,double,double,double,double,double); //Triangle Constructor
	~Shape(); //Destructor
	void setVert(int,double,double); //set vertices
	void setTri(double,double,double,double,double,double); //set all points for triangle
	void setX(int,double); //set a specific x value
	void setY(int,double); //set a specific y value
	void setSlope(); //set all slopes
	void setNormalSlope(); //set all perpendicular slopes
	void setProjection(int,double*,double*); //set a specific point projection

	int getVert(){return vert;}; //get # of vertices
	double *getX(){return x;}; //get x values
	double *getY(){return y;}; //get y values
	double *getM(){return m;}; //get slopes
	double *getMN(){return mN;}; //get perpendicular slopes
	double *getProjection(){return p;}; //get point projections
	bool getCollision(Shape&); //get collision data
};

#endif